﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Static栈
{
    class Program
    {
        static void Main(string[] args)
        {
            //Push向栈里面添加元素
            Stack stack = new Stack();
            stack.Push("一号盘子");
            stack.Push("二号盘子");
            stack.Push("三号盘子");
            stack.Push("四号盘子");
            stack.Push("五号盘子");
            //用于获取栈顶元素的值，但不移除栈顶元素的值
            stack.Peek();
            Console.WriteLine("栈顶元素的值:{0}",stack.Peek());
            //用于移除栈顶元素的值，并移除栈顶元素
            stack.Pop();
            Console.WriteLine("移除栈顶元素的值:{0}",stack.Pop());
            //从 Stack 中移除所有的元素
            //stack.Clear();
            Console.WriteLine("康康还有多少盘子:");
            while(stack.Count != 0)
            {
                Console.WriteLine(stack.Pop());
            }
            //Contains(object obj)	判断某个元素是否在 Stack 中
            Stack wenan = new Stack();
            wenan.Push("你是人间惊鸿客，");
            wenan.Push("我是檐上三寸冰。");
            wenan.Push("我与春风皆过客，");
            wenan.Push("你携秋水揽星河。");
            wenan.Push(1);
            wenan.Contains(1);
            Console.WriteLine(wenan.Contains(1));

            //object[] ToArray()  复制 Stack 到一个新的数组中
            Stack life = new Stack();
            life.Push("年轻的时候");
            life.Push("你做了一个决定");
            life.Push("要把生命献给爱情");
            life.Push("后来你没有死");
            life.Push("年轻替你抵了命");
            string[] str = new string[4] { " ", " ", " ", " " };
            object[] sss = life.ToArray();
            foreach (var a in sss)
            {
                Console.WriteLine(a);
            }
        }
    }
}
